import swanlab
from swanlab import Settings

# 创建新的设置对象
new_settings = Settings(
    metadata_collect=False,
    hardware_monitor=False,
    upload_interval=5
)

# 更新全局设置
swanlab.merge_settings(new_settings)

swanlab.init(
    project="cats-detection",  # str 项目名，如果不指定则取运行目录的名称。
    workspace="alchemy",  # 工作空间，默认将实验同步到你的个人空间下，如果要上传到组织，则填写组织的username。
    experiment_name="YoloX-baseline",  # 实验名称, 如果不指定则取"swan-1"这样的动物名+序号作为实验名。
    description="YoloX检测模型的基线实验，主要用于后续对比。",  # 实验描述, 如果不指定默认为None。
    logdir="my_custom_dir",  # 离线看板日志文件存储路径，默认为swanlog 。
    mode="local",  # 设置swanlab实验创建的模式，可选"cloud"、"local"、"disabled"，默认设置为"cloud"。
    # cloud：将实验上传到云端。（公有云和私有化部署）local：不上传到云端，但会记录实验信息到本地。disabled：不上传也不记录。
    config={  # dict/str 实验配置，在此处可以记录一些实验的超参数等信息。支持传入配置文件路径，支持yaml和json文件。
        "learning-rate": 1e-4,
        "model": "CNN",
    },
    load="",  # str 加载的配置文件路径，支持yaml和json文件。
    public=True,  # bool 设置使用代码直接创建SwanLab项目的可见性，默认为False即私有。
    callbacks=[],  # list 设置实验回调函数，支持swankit.callback.SwanKitCallback的子类。
)

for i in range(1000):
    # swanlab.log({"acc": i / 100, "loss": 0.1462 - i / 100}, step=i, print_to_console=True)
    swanlab.log({"acc": i / 100, "loss": 0.1462 - i / 100}, print_to_console=True)

swanlab.finish()
